import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import postcssPxToViewport from "postcss-px-to-viewport";
import { VantResolver } from "unplugin-vue-components/resolvers";
import Components from "unplugin-vue-components/vite";
import AutoImport from "unplugin-auto-import/vite";
import { resolve } from "path";
// https://vite.dev/config/
export default defineConfig({
	plugins: [
		vue(),
		Components({
			resolvers: [VantResolver()]
		}),
		AutoImport({
			imports: ["vue", "vue-router"],
			dts: "./src/autoImport.d.ts"
		})
	],
	css: {
		postcss: {
			plugins: [
				postcssPxToViewport({
					unitToConvert: "px", // 要转化的单位
					viewportWidth: 375, // UI设计稿的宽度
					unitPrecision: 6, // 转换后的精度，即小数点位数
					propList: ["*"], // 指定转换的css属性的单位，*代表全部css属性的单位都进行转换
					viewportUnit: "vw", // 指定需要转换成的视窗单位，默认vw
					fontViewportUnit: "vw", // 指定字体需要转换成的视窗单位，默认vw
					selectorBlackList: ["ignore-"], // 指定不转换为视窗单位的类名，
					minPixelValue: 1, // 默认值1，小于或等于1px则不进行转换
					mediaQuery: true, // 是否在媒体查询的css代码中也进行转换，默认false
					replace: true, // 是否转换后直接更换属性值
					exclude: [],
					landscape: false // 是否处理横屏情况
				})
			]
		}
		// preprocessorOptions: {
		// 	stylus: {
		// 		imports: [resolve("./src/assets/css/public.styl")]
		// 	}
		// }
	},
	resolve: {
		alias: {
			"@": resolve(__dirname, "./src/"),
			components: resolve(__dirname, "./src/components/"),
			views: resolve(__dirname, "./src/views/"),
			entities: resolve(__dirname, "./src/entities"),
			public: resolve(__dirname, "public")
		}
	}
});
